package br.com.pfc.application.controller.usuarios;

import br.com.pfc.application.controller.BaseController;
import br.com.pfc.application.dao.UsuarioDAO;
import br.com.pfc.application.exceptions.BusinessException;
import br.com.pfc.model.Usuario;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Begin;
import org.jboss.seam.annotations.End;
import org.jboss.seam.annotations.FlushModeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;

/**
 *
 * @author mucceli
 */
@Name("usuarioExcluirAction")
@Scope(ScopeType.SESSION)
public class UsuarioExcluirController extends BaseController{

    @In
    private UsuarioDAO usuarioDAO;
    private Usuario usuario;

    @Begin(flushMode = FlushModeType.MANUAL, join = true)
    public String setup(Usuario usuarioSelecionado) {
        usuario = usuarioSelecionado;
        return null;
    }

    @End
    public String excluir(UsuarioPesquisarController action) {
        try {
            usuarioDAO.excluir(usuario);
            action.getListaUsuarios();
            adicionarMensagemInformacao("Usuário excluído com sucesso!");
        } catch (Exception be) {
            adicionarMensagemErro("Erro ao excluir o usuário: " + be.getMessage());
        }

        return null;
    }

    @End
    public String cancelar() throws Exception {
        try {
            usuarioDAO.cancelar();
        } catch (BusinessException be) {
            adicionarMensagemErro("Erro ao cancelar: " + be.getMessage());
        }
        return null;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

}
